#ifndef COMINFO_H
#define COMINFO_H

/**
* 病毒查杀服务与界面交互需要用到的公共枚举和结构体
* 注意：声明结构体时不能和引擎头文件中枚举和结构体重名！
**/

#include <QString>

//病毒引擎
enum EnginType {
    Rising = 0, // 瑞星
    Ahprotector // 安恒
};

// 扫描状态
enum DissectionState {
    ScanPause,
    ScanContinue,
    ScanStop,
};

// 扫描类型
enum VirusScanType {
    AllScan = 0, // 全盘
    QuickScan, // 快速
    CustomizedScan // 自定义
};

// 扫描单个结果操作类型
typedef enum Itemtype {
    Repair = 0, // 维修
    Delete, // 删除
    isolation, // 隔离
    Trust // 信任
} OperatingType;

// 操作行为
enum OperatingAction {
    Add = 0, // 添加
    Remove // 移除
};

// 扫描单个结果操作内容
struct ItemWidgetInfo {
    QString path; // 标题
    int status; // 状态信息   完成  修复  删除
    QString discriptionInfo; // 描述信息
};

// 病毒类型
enum AHVirusType {
    AHNormal, // 正常,
    AHTrojan, // 木马
    AHTrojanDownloader, // 下载者木马
    AHTrojanSpy, // 间谍木马
    AHTrojanDropper, // 释放器木马
    AHTrojanClicker, // 点击器木马
    AHTrojanProxy, // 代理木马
    AHBackdoor, // 后门远控
    AHWorm, // 蠕虫
    AHVirus, // 感染型木马
    AHRansom, // 勒索软件
    AHRogue, // 流氓行为
    AHRootkit, // 内核后门密码
    AHBootkit, // 引导后门密码
    AHOMacro, // 宏病毒
    AHDOC, // 恶意文档
    AHAdware, // 恶意广告
    AHConstructor, // 病毒生成器
    AHHackTool, // 黑客工具
    AHVirTool, // 代码混淆器
    AHExploit, // 漏洞利用
    AHJoke, // 玩笑程序
    AHOther // 其他
};

// 查杀日志结构体
struct ScanLogInfo {
    QString datetime; // 查杀时间
    QString scanType; // 扫描类型
    QString result; // 扫描结果
    QString filePath; // 文件路径
};

// 信任/隔离文件结构体
struct TrustFileInfo {
    QString sFilePath; // 文件路径
    QString sFileName; // 文件名
    QString sAddTime; // 添加时间
};

// 瑞星病毒类型
enum RisingVirusType {
    RSmkTrait = 0,
    RSmkHidden = 1,
    RSmkHiddenFU = 2,
    RSmkComplier = 3,
    RSmkPacker = 4,
    RSmkFormat = 5, // 文件格式
    RSmkAppType = 6,
    RSmkTrusted = 9,
    RSmkMalware = 0x10, // 恶意软件       40
    RSmkTrojan, // 木马42
    RSmkBackdoor, // 后门远控       76
    RSmkWorm, // 蠕虫          72
    RSmkRootkit, // 恶意驱动       74
    RSmkExploit, // 漏洞利用       78
    RSmkHackTool, // 黑客工具       22
    RSmkAdware, // 恶意广告       26
    RSmkStealer, // 盗号木马       68
    RSmkSpammer, // 垃圾邮件发送器  66
    RSmkSpyware, // 间谍软件       70
    RSmkVirus, // 感染型病毒     100
    RSmkJoke, // 玩笑程序       4
    RSmkJunk, // 病毒僵尸       2
    RSmkPUA, // 不需要的应用    24
    RSmkDownloader, // 下载器         62
    RSmkDropper, // 释放器         64
    RSmkRansom, // 勒索软件        80
    RSmkHoax, // 诈骗软件        60
    RSmkRiskware, // 灰色软件        28
    RSmkUnwanted, // 不需要的应用     24
    RSmkMonetizer, // 套现程序        50
    RSmkMobileBase = 0xC0,
    RSmkPayment = RSmkMobileBase, // 恶意扣费        58
    RSmkPrivacy, // 隐私窃取        56
    RSmkRemote, // 远程控制        54
    RSmkSpread, // 恶意传播        52
    RSmkExpense, // 资费消耗        50
    RSmkSystem, // 系统破坏        48
    RSmkFraud, // 诱骗欺诈        46
    RSmkRogue, // 流氓行为        44
    RSmkAttention = 0xFE, // 注意!           6
    RSmkTypeMax = 0x100,
};

#endif // COMINFO_H
